<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui">
    <h:head>
        <title>Pessoa Física</title>
        <ui:include src="/template/templateAdmin.xhtml"/>
    </h:head>
    <h:body>
        <div class="wrapper">
            <div class="header">
                <div class="logo"></div>
            </div>
            <div class="menu-top">
                <h:form id="form_pessoa_fisica">
                    <div class="font-title-spacing">
                        <p:outputLabel value="Pessoa Física" styleClass="font-title"  />
                    </div>
                    <p:panel id="id_panel_cadastro" header="Cadastro">
                        <p:messages id="id_messages" showDetail="true" autoUpdate="true" closable="true" />
                        <p:tabView id="id_tab_view" styleClass="margin-top" >
                            <p:tab title="Dados pessoais">
                                <h:panelGrid columns="2">
                                    <p:outputLabel value="Nome:" for="id_pessoa_nome"/>
                                    <p:inputText value="#{pessoaMB.fisica.pessoa.nome}" id="id_pessoa_nome" size="50"/>
                                    <p:outputLabel value="Data de nascimento:" for="id_pessoa_nascimento"/>
                                    <p:calendar value="#{pessoaMB.fisica.dtNascimento}" pattern="dd/MM/yyyy" readonlyInput="true" id="id_pessoa_nascimento" size="10" navigator="true" >
                                        <p:ajax event="dateSelect" update="@this" />
                                    </p:calendar>
                                    <p:outputLabel value="CPF:" for="id_pessoa_documento"/>
                                    <p:inputMask value="#{pessoaMB.fisica.pessoa.documento}" mask="999.999.999-99" id="id_pessoa_documento" size="12" maxlength="16"/>
                                    <p:outputLabel value="RG:" for="id_pessoa_rg"/>
                                    <p:inputText value="#{pessoaMB.fisica.rg}" id="id_pessoa_rg"/>
                                    <p:outputLabel value="E-mail:" for="id_pessoa_email"/>
                                    <p:inputText value="#{pessoaMB.fisica.pessoa.email}" id="id_pessoa_email" size="40"/>
                                </h:panelGrid>
                            </p:tab>
                            <p:tab title="Endereço" disabled="#{pessoaMB.fisica.id == -1}">
                                <h:panelGrid id="id_panel_grid_endereco">
                                    <p:dataTable value="#{pessoaMB.listaPessoaEnderecos}" var="pessoaEndereco" emptyMessage="Nenhum endereço cadastrado" rendered="#{pessoaMB.listaPessoaEnderecos.size() > 0}">
                                        <p:column styleClass="text-center">
                                            <p:column rendered="#{pessoaEndereco.tipoEndereco.id == 1}">
                                                <span class="ilines-icon ilines-icon-home" title="Endereço residencial"></span>
                                            </p:column>
                                            <p:column rendered="#{pessoaEndereco.tipoEndereco.id == 2}">
                                                <span class="ilines-icon ilines-icon-trade" title="Endereço comercial"></span>
                                            </p:column>                                            
                                            <p:column rendered="#{pessoaEndereco.tipoEndereco.id == 3}">
                                                <span class="ilines-icon ilines-icon-trade" title="Endereço cobrança"></span>
                                            </p:column>                                            
                                        </p:column>
                                        <p:column headerText="Endereço">
                                            <p:commandLink value="
                                            #{pessoaEndereco.endereco.logradouro.descricao} 
                                            #{pessoaEndereco.endereco.descricaoEndereco}, 
                                            #{pessoaEndereco.numero}" action="#{pessoaMB.editarPessoaEndereco(pessoaEndereco)}" update=":form_pessoa_fisica:id_tab_view:id_accordio, :form_pessoa_fisica:id_tab_view:id_accordio:id_panel_endereco" /> 
                                        </p:column>
                                        <p:column headerText="Bairro">
                                            #{pessoaEndereco.endereco.bairro}
                                        </p:column>
                                        <p:column headerText="Cidade">
                                            #{pessoaEndereco.endereco.cidade.descricao}
                                        </p:column>
                                        <p:column headerText="Estado">
                                            #{pessoaEndereco.endereco.cidade.estado.descricao}
                                        </p:column>
                                        <p:column headerText="CEP">
                                            #{pessoaEndereco.endereco.cep}
                                        </p:column>
                                        <p:column headerText="*">
                                            <p:selectBooleanCheckbox value="#{pessoaEndereco.principal}">
                                                <p:ajax listener="#{pessoaMB.enderecoPrincipal(pessoaEndereco)}" update=":form_pessoa_fisica:id_tab_view:id_panel_grid_endereco" event="change" /> 
                                            </p:selectBooleanCheckbox>
                                        </p:column>
                                        <p:column width="25">
                                            <p:commandButton icon="ui-icon-trash" action="#{pessoaMB.removerPessoaEndereco(pessoaEndereco)}" update=":form_pessoa_fisica:id_tab_view:id_panel_grid_endereco" />
                                        </p:column>
                                        <f:facet name="footer">
                                            * (Endereço principal)
                                        </f:facet>
                                        
                                    </p:dataTable>
                                </h:panelGrid>
                                <div class="clear"></div>                                
                                <p:accordionPanel id="id_accordio" style="margin-top: 15px; width: 700px;" activeIndex="#{pessoaMB.indexAccordion}">
                                    <p:ajax event="tabChange" listener="#{pessoaMB.novoPessoaEndereco}" update="id_panel_endereco" />
                                    <p:tab title="Adicionar novo endereço" id="id_tab_add">
                                        <h:panelGrid columns="2" id="id_panel_endereco" rendered="#{pessoaMB.listaTipoEndereco.size() > 0}">
                                            <p:outputLabel value="CEP:" for="id_endereco_cep"/>
                                            <p:inputMask value="#{pessoaMB.pessoaEndereco.endereco.cep}" mask="99999-999" id="id_endereco_cep" size="10" >
                                                <p:ajax event="blur" update="id_panel_endereco" listener="#{pessoaMB.pesquisaCEP()}"/>
                                            </p:inputMask>                                   
                                            <p:outputLabel value="Endereço:" />
                                            <h:column>
                                                <h:panelGrid columns="6">
                                                    <p:selectOneMenu id="id_endereco_logradouro" value="#{pessoaMB.idLogradouro}" disabled="#{pessoaMB.pessoaEndereco.endereco.cep.equals('')}" style="width: 100px;">
                                                        <p:ajax event="change" update="@this" />
                                                        <f:selectItem itemLabel="Selecione o logradouro" itemValue="" noSelectionOption="true"/>
                                                        <f:selectItems value="#{pessoaMB.listaLogradouros}"/>
                                                    </p:selectOneMenu>
                                                    <p:inputText value="#{pessoaMB.pessoaEndereco.endereco.descricaoEndereco}" id="id_endereco_descricao" disabled="#{pessoaMB.pessoaEndereco.endereco.cep.equals('')}"/>
                                                    <p:outputLabel value="Bairro: " for="id_endereco_bairro"/>
                                                    <p:inputText value="#{pessoaMB.pessoaEndereco.endereco.bairro}" id="id_endereco_bairro" disabled="#{pessoaMB.pessoaEndereco.endereco.cep.equals('')}"/>
                                                </h:panelGrid>
                                            </h:column>
                                            <p:outputLabel value="Nº" for="id_endereco_numero"/>
                                            <h:column>
                                                <p:inputText value="#{pessoaMB.pessoaEndereco.numero}" id="id_endereco_numero" disabled="#{pessoaMB.pessoaEndereco.endereco.cep.equals('')}"/>
                                                <p:outputLabel value="Complemento: " for="id_endereco_complemento"/>
                                                <p:inputText value="#{pessoaMB.pessoaEndereco.complemento}" id="id_endereco_complemento" disabled="#{pessoaMB.pessoaEndereco.endereco.cep.equals('')}"/>
                                            </h:column>
                                            <p:outputLabel value="Estado:" />
                                            <h:panelGrid columns="4">
                                                <p:selectOneMenu id="id_endereco_estado" value="#{pessoaMB.idEstado}" disabled="#{pessoaMB.pessoaEndereco.endereco.cep.equals('')}">
                                                    <p:ajax event="change" update="id_endereco_cidade" listener="#{pessoaMB.listaCidades.clear}"/>
                                                    <f:selectItems value="#{pessoaMB.listaEstados}"/>
                                                </p:selectOneMenu>
                                                <p:outputLabel value="Cidade:"/>
                                                <p:selectOneMenu id="id_endereco_cidade" value="#{pessoaMB.idCidade}" disabled="#{pessoaMB.pessoaEndereco.endereco.cep.equals('')}">
                                                    <p:ajax event="change" update="id_endereco_cidade" />
                                                    <f:selectItems value="#{pessoaMB.listaCidades}"/>
                                                </p:selectOneMenu>
                                            </h:panelGrid>
                                            <p:outputLabel value="Tipo de endereço: "/>
                                            <p:column>
                                                <h:panelGrid columns="2">
                                                    <p:selectOneMenu id="id_endereco_t_endereco" value="#{pessoaMB.idTipoEndereco}" disabled="#{pessoaMB.pessoaEndereco.endereco.cep.equals('')}">
                                                        <p:ajax event="change" update="id_endereco_t_endereco" />
                                                        <f:selectItems value="#{pessoaMB.listaTipoEndereco}"/>
                                                    </p:selectOneMenu> 
                                                    <p:commandButton icon="ui-icon-plus" value="Adicionar" actionListener="#{pessoaMB.adicionarPessoaEndereco()}" update="id_accordio id_panel_endereco, id_panel_endereco_mensagem, :form_pessoa_fisica:id_tab_view:id_panel_grid_endereco "/>
                                                </h:panelGrid>
                                            </p:column>
                                        </h:panelGrid>
                                        <h:panelGrid id="id_panel_endereco_mensagem" rendered="#{pessoaMB.listaTipoEndereco.size() == 0}">
                                            <p:outputLabel value="Todos os endereços adicionados" />
                                        </h:panelGrid>
                                    </p:tab>
                                </p:accordionPanel>
                            </p:tab>
                            <p:tab title="Dados de cobrança" disabled="#{pessoaMB.fisica.id == -1}">
                                
                            </p:tab>
                        </p:tabView>

                        <h:panelGrid columns="4" styleClass="margin-top-max">
                            <p:commandButton value="Salvar" onclick="dgl_salvar.show()" type="button"/>
                            <p:commandButton value="Novo" action="#{pessoaMB.novo}" update="id_panel_cadastro id_tab_view"/>
                            <p:commandButton value="Excluir" onclick="dgl_excluir.show()"  type="button" />
                            <p:commandButton value="Pesquisar" action="#{chamadaPaginaMB.pesquisaPessoaFisica()}" />
                        </h:panelGrid>
                    </p:panel>
                    <p:dialog widgetVar="dgl_salvar" header="Salvar este registro?" closable="true" resizable="false" width="250" height="100" modal="true">
                        <h:panelGrid columns="3">
                            <p:commandButton value="Confirmar" onclick="dgl_salvar.hide(); dgl_mensagem.show()" action="#{pessoaMB.salvar()}" update="id_panel_cadastro, id_mensagem"/>
                            <p:commandButton value="Cancelar" onclick="dgl_salvar.hide()" type="button" />
                        </h:panelGrid>
                    </p:dialog>
                    <p:dialog widgetVar="dgl_excluir" header="Excluir este registro?" closable="true" resizable="false" width="250" height="100" modal="true">
                        <h:panelGrid columns="3">
                            <p:commandButton value="Confirmar" onclick="dgl_excluir.hide(); dgl_mensagem.show()" action="#{pessoaMB.excluir()}" update="id_panel_cadastro, id_mensagem"/>
                            <p:commandButton value="Cancelar" onclick="dgl_excluir.hide()" type="button" />
                        </h:panelGrid>
                    </p:dialog>
                    <p:dialog widgetVar="dgl_mensagem" header="Mensagem" closable="true" resizable="false" width="250" height="100" modal="true">
                        <h:panelGrid columns="3">
                            <p:outputLabel value="#{pessoaMB.mensagem}" id="id_mensagem" />
                            <p:commandButton value="OK" onclick="dgl_mensagem.hide()" type="button" />
                        </h:panelGrid>
                    </p:dialog>
                </h:form>                
            </div>
        </div>
        <br />        
    </h:body>
</html>

